var player;
var platforms;
var cursors;
var stars;

var score = 0; 
var scoreText;
var game = new Phaser.Game(800, 600, Phaser.AUTO, '', {
	preload : preload,
	create : create,
	update : update
});

function preload() {

	game.load.image('sky', 'assets/sky.png');
	game.load.image('ground', 'assets/platform.png');
	game.load.image('star', 'assets/star.png');
	game.load.spritesheet('dude', 'assets/dude.png', 32, 48);

}

var platforms;

function create() {

	// A simple background for our game
	game.add.sprite(0, 0, 'sky');

	// The platforms group contains the ground and the 2 ledges we can jump on
	platforms = game.add.group();

	// Here we create the ground.
	var ground = platforms.create(0, game.world.height - 64, 'ground');

	// Scale it to fit the width of the game (the original sprite is 400x32 in size)
	ground.scale.setTo(2, 2);

	// This stops it from falling away when you jump on it
	ground.body.immovable = true;

	// Now let's create two ledges
	var ledge = platforms.create(400, 400, 'ground');
	ledge.body.immovable = true;
	ledge = platforms.create(-150, 250, 'ground');
	ledge.body.immovable = true;


	// The player and its settings
	player = game.add.sprite(32, game.world.height - 150, 'dude');

	// Player physics properties. Give the little guy a slight bounce.
	player.body.bounce.y = 0.2;
	player.body.gravity.y = 6;
	player.body.collideWorldBounds = true;
	// Our two animations, walking left and right.
	player.animations.add('left', [0, 1, 2, 3], 10, true);
	player.animations.add('right', [5, 6, 7, 8], 10, true);

	cursors = game.input.keyboard.createCursorKeys();
	
	stars = game.add.group(); 
	// Here we'll create 12 of them evenly spaced apart 
	for (var i = 0; i < 12; i++)
	 { 
	 	// Create a star inside of the 'stars' group 
	 	var star = stars.create(i * 70, 0, 'star'); 
	 	
	 	// Let gravity do its thing 
	 	star.body.gravity.y = 6; 
	 	
	 	// This just gives each star a slightly random bounce value 
	 	star.body.bounce.y = 0.7 + Math.random() * 0.2; 
	 }
	
	scoreText = game.add.text(16, 16, 'score: 0', { fontSize: '32px', fill: '#000' });
}

function update() {

	// Collide the player and the stars with the platforms
	game.physics.collide(player, platforms);
	game.physics.collide(stars, platforms);
	game.physics.overlap(player, stars, collectStar, null, this);

	// Reset the players velocity (movement)
	player.body.velocity.x = 0;

	if (cursors.left.isDown) {
		// Move to the left
		player.body.velocity.x = -150;
		player.animations.play('left');
	} else if (cursors.right.isDown) {

		// Move to the right
		player.body.velocity.x = 150;
		player.animations.play('right');
	} else {
		// Stand still
		player.animations.stop();
		player.frame = 4;
	}

	// Allow the player to jump if they are touching the ground.
	if (cursors.up.isDown && player.body.touching.down) {
		player.body.velocity.y = -350;
	}

}

function collectStar (player, star) 
{ 
	// Removes the star from the screen 
	star.kill(); 
	
	// Add and update the score 
	 score += 10;
	 scoreText.content = 'Score: ' + score;
	 
}